<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head>
  
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">

  
  <link href="../css/style.css" rel="stylesheet" type="text/css">

</head>
<body>
<h1>4.3. Turbo Debugger</h1>
<p class="article">
Отладчик позволяет выполнять пошаговую трассировку, отслеживать, устанавливать или изменять значения переменных в процессе выполнения кода, устанавливать и удалять контрольные точки или условия остановки и т.д.
Интефейс отладчика напоминает среду Turbo Pascal:
</p>
<div class="image">
	<img src="../img/td1.png" />
	<p>Окно Turbo Debugger</p>
</div>
<p class="article">
В большой области мы видим код нашей программы. Самый левый столбец — адреса, правее отображаются байты машинного кода, а ещё правее — символическое обозначение команд. Программа размещается в памяти, начиная с адреса 0100h в сегменте кода. В нашей программе всего 6 машинных команд, а за ними в памяти находится случайный мусор (точные значения неизвестны).
В правой части окна CPU отображаются регистры процессора и флаги. В нижней части можно увидеть дамп области памяти и стек. Стек — это специальная структура данных, с которой работают некоторые команды процессора.
Адрес текущей машинной команды определяется регистрами CS и IP, эта команда показана выделенной строкой и стрелкой. Теперь нажмите F8, чтобы выполнить первую команду.
</p>
<div class="noteimportant">
Отладчик показывает адреса и значения в шестнадцатеричном виде.
</div>
<p class="article">
Основные горячие клавиши: <br />
Alt + X - выход из программы <br />
F10 - главное меню <br />
TAB - переход к следующему окну <br />
F5 - ZOOM окна <br />
Alt + F5 - перейти в окно исполнения программы(увидеть результат работы тестируемой программы) и вернуться в окно отладки <br />
Alt + F4 - Back Trace <br />
F8 - Step Over - полный шаг отладки без углубления в подпрограммы <br />
F7 - Trace Into - шаг отладки с углублением в подпрограммы <br />
F9 - Run - запуск тестируемой программы на выполнение <br />
Ctrl + NumLock - прерывает выполнение тестируемой программы(запущенной по команде RUN) <br />
A..Z - ввод команд ассемблера в тело тестируемой программы по адресу в позиции курсора 
</p>
</body>
</html>
